var querystring = require("querystring"), fs = require("fs"), formidable = require("formidable");


function start(response) {
	console.log("Request handler 'start' was called.");

	var body = '<html>' + '<head>' + '<meta http-equiv="Content-Type" content="text/html; ' + 'charset=UTF-8" />' + '</head>' + '<body>' + '<form action="/upload" enctype="multipart/form-data" ' + 'method="post">' + '<input type="file" name="upload" multiple="multiple">' + '<input type="submit" value="Upload file" />' + '</form>' + '</body>' + '</html>';

	response.writeHead(200, {
		"Content-Type" : "text/html"
	});
	response.write(body);
	response.end();
}

//upload函数的功能：利用formidable模块创建form，设置表单上传的路径，解析request，文件重命名，插入图片
function upload(response, request) {
	console.log("Request handler 'upload' was called.");

	var form = new formidable.IncomingForm();
	form.uploadDir = "./tmp";
	console.log("about to parse");
	form.parse(request, function(error, fields, files) {
		console.log("parsing done");
		fs.renameSync(files.upload.path, "./tmp/test.png");
		response.writeHead(200, {
			"Content-Type" : "text/html"
		});
		response.write("received image:<br/>");
		response.write("<img src='/show' >");

		response.end();
	});
}

//show函数的功能：从指定的路径读文件，文件读完后返回给浏览器
function show(response) {
	console.log("Request handler 'show' was called.");
	fs.readFile("./tmp/test.png", "binary", function(error, file) {
		if (error) {
			response.writeHead(500, {
				"Content-Type" : "text/plain"
			});
			response.write(error + "\n");
			response.end();
		} else {
			response.writeHead(200, {
				"Content-Type" : "image/png"
			});
			response.write(file, "binary");
			response.end();
		}
	});
}

exports.start = start;
exports.upload = upload;
exports.show = show; 